package myjava.i_collection;

/**
 * @Auther: cty
 * @Date: 2019/11/9 下午7:40
 * @Description: 测试范型
 * 容器和Object密不可分！！！
 * @version: 1.0
 */
public class A_TestGeneric {
    public static void main(String[] args) {
        //未使用泛型
        //set——任意数据类型
        //get——需要强制类型转换
        MyCollection mc = new MyCollection();
        mc.set("陈天宇",0);
        mc.set(8888,1);
        Integer a = (Integer)mc.get(1);
        String b = (String)mc.get(0);
        System.out.println(a);
        System.out.println(b);

        //使用泛型
        //set——指定一种数据类型
        //get——不需要强制类型转换
        MyCollection2<String> mc2 = new MyCollection2<String>();
        mc2.set("陈天宇",0);
        String b2 = mc2.get(0);
        System.out.println(b2);
    }
}

//未使用泛型
class MyCollection{
    Object[] objs = new Object[5];

    public void set(Object obj,int index){
        objs[index] = obj;
    }

    public Object get(int index){
        return objs[index];
    }
}

//使用泛型
class MyCollection2<E>{
    Object[] objs = new Object[5];

    public void set(E e,int index){
        objs[index] = e;
    }

    public E get(int index){
        return (E)objs[index];
    }
}
